home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
aminet
/
gfx
/
misc
/
emath_3d_v1_0.lzh
/
emath3D.doc
next >
Wrap
Text File
|
1992-08-19
|
11KB
|
260 lines
Emath-3D V1.0 DOCUMENT 18.08.1992
*********************** **********
DISTRIBUTION NOTICE
-------------------
This program can be freely distributed provided that the doc file is also
distributed with the program. No modification is allowed for the program file
and the doc file. No profit can be made upon this product other than diskette
and copying expenses without a written permission from me.
This program is a SHAREWARE. If you find the program useful and utilize it
I ask you to send $10-$20 to the below address. This will make you a registered
user. The registration will enable you to get new versions of this product
directly from me. Also I am going to send you other programs that I develop.
The bug reports are welcomed. If you are going to report a bug please write
your system's configuration explicitly. For your all contacts please do not
forget to write your name and address.
My mail address : ( valid forever )
ULTRA A.S.
Erhan OZTOP
P.K. 567
ANTALYA - TURKEY
My email address: E63256@TRMETU.BITNET ( valid at least until oct.1993 )
Bug reporting and other questioning can be done by emailing if you have
network access.
INTRODUCTION TO EMATH-3D V1.0
-----------------------------
Emath-3D is a mathematical tool, it has been designed to help viewing
mathematical functions. Using this program, you can plot any ( almost )
function. The program features
* Both polar and rectangular function evaluation is possible.
* Various rendering styles are supported.
* It is possible to view the plotted expression from any angle.
* Satisfactory grid resolution ( 180x180 is possible if your system has
enough memory )
* Different screen modes are supported.
* Runs on a 512 Kb amiga
* Appreciatable speed enables reasonable working speed on a standard
amiga
* Friendly user interface, all controls are located on a pop up half
screen.
* Works on versions 1.2, 1.3, 2.0 , as far as I know.
* Works on NTSC ( It should at least )
The program can be executed from cli by using below formats. ( assuming
that the name of the program is Emath )
1 ) Emath
2 ) Emath <grid>
3 ) Emath <x grid> x <y grid>
In case of (1) Emath will allow a maximum of 33 x 33 grid resolution.
In case of (2) Emath will allow a maximum of <grid> x <grid> grid resolution.
In case of (3) Emath will allow a maximum of <x grid> x <y grid> grid resolution.
the grid values must be in the range [1..180]
THE CONTROL PANEL
-----------------
* All the controls are located on the pop up half screen. You can toggle the
screen with right mouse button. Using this button the screen will pop up or
disappear. The title line of the control panel is used as an information line.
Information line displays messages, program mode, rendering mode and finally
the depth of the drawing screen.
There is a total of 4 expression specific string gadgets. The first one is
for the rectangular mode, the other three which are initially inactive is used
by the polar evaluation routine.
For both polar and rectangular modes, you have two variables named 'x' and 'y'
which are traced over a user defined rectangle.
The following functions are implemented:
EXP,LN,LOG,ABS
SIN,COS,TAN,
ASIN,ACOS,ATAN,
SINH,COSH,TANH,
ASINH,ACOSH,ATANH,
pi (=ATAN(1)*4 ... ) and e (=EXP(1) .. ) are predefined constants.
Standard operator precedence is used in expression evaluation.( association is
from left to right ) The expression evaluation is not case sensitive. Once you
have entered an expression it must be evaluated. The EVALUATION button will
perform this task. The evaluation is grid dependent, that means altering the
grid parameters as well as any changes to the expression itself will require
a new evaluation. To see the graphical result of an expression you must use the
SHOW button. It will perform an evaluation if one is necassary. The four arrows
will perform a rotation of a number of degrees indicated in the ANGLE STEP
gadget. The COLORS gadged brings up a color selection menu, with builtin spread
and copy functions. The grid resolution can be defined using the GRIDX and GRIDY
gadgets, each defining the number of grid elements in the indicated axis. There
are four gadgets defining the starting and ending boundries, namely XSTART,
YSTART, XEND, YEND. The variable 'x' traces x axis from XSTART to XEND while
the variable 'y' traces y axis from YSTART to YEND.
In the Blend rendering mode, you have opportunity to locate a light source
its which coordinates are defined in SOURCEX, SOURCEY, SOURCEZ gadgets.
The two program modes are toggled by using the MODE gadget. The program
mode can be POLAR or RECTANGULAR.
The DRAWMODE gadget selects one of the four drawing modes avaliable.
The drawing modes are:
* WIREFRAME :No line hiding is performed.
* NORMAL :Two user selectable colors is used to differentiate the
bottom and the top of the image drawn.
* CHEQUERED :A chess board like painting is employed. Bottom/top
differentiation is provided with a different texture for
the bottom.
* BLEND :Grid elements are colored according to their distance to a
user locatable source. Bottom/top differentiation is as in
CHEQUERED mode.
There are three gadgets controlling the screen attributes, HIRES, INTERLACE
and DEPTH. After the desired screen attributes are set it is necassary to
press CHANGE SCREEN gadget to open the new screen.
The AUTOSHOW gadget enables the autoshow mode where the image is displayed
after a user manipulation that requires a screen redraw.
Emath-3D will scale the image so that it can fit to the screen. ( Its aspect
ratio will be preserved.) Emath-3D finds a scale value to scale the image,
this value can be modified by the OVERSCALE gadget. When this feature is on
Emath-3D will multiply the value in the OVER SCALE string gadget with the
actual scale value to find the final scale value to be used for scaling.
This enables user to resize the image drawn. ( if the overscale value is
greater than 1 the image will get out of the screen boundries, where as a
value less than 1 will cause a smaller image to be drawn)
Emath-3D rescales the image, even if a rotation has been done. This can be
sometimes disturbing. ( The actual projected image will change size as you
change the angle under which the image is viewed ) To prevent this you can
use the FIXSCALE gadget. As long as this feature is on the scale value won't
be recalculated, instead the last scale value that was calculated before, will
be used.
Xcenter, Ycenter gadgets are used to change the midpoint of the drawing screen.
A value -10 for Ycenter will shift the image 10 pixels above whereas a value
of 20 for Xcenter will shift the image 20 pixels to the right.
You can write complex expressions in the gadgets that are used to gather real
values such as Xstart, Ystart, Xend, Yend gadgets. (Although you can't enter
long strings) For example you can write cos(e) in the Xstart gadget.
The TERMINATE gadget quits the program.
LEFT ALT key is used to interrupt the rendering operation.
TECHINICAL NOTES & SYSTEM REQUIREMENTS
--------------------------------------
* The program requires mathtrans.library in the system disk's libs
directory. ( actualy in the logical device LIBS: )
* The program will allow user to evaluate functions with a grid resulotion of
180x180. But this neends considerable amount of memory. The approximate memory
required for AxB grid resolution can be given as:
memory needed (A+1)*(B+1)*24 bytes.
(naturally you must consider the memory required to load in the program
itself and the chip memory needed for the drawing screen and the pop up half
screen.
)
the main continous memory segments needed are given below
(A+1)*(B+1)*12 + (A+1)*(B+1)*8 + (A+1)*(B+1)*2 + (A+1)*(B+1)*2 = (A+1)*(B+1)*24
* If the program can't open a 320x256x4 screen it will try to open a
320x200x4 screen, this will (I hope) enable the program to run on a ntsc system.
If the second attempt also fails, the program will not quit. You can use the
program with that state, even if you cannot render anything on the screen.
(You can open a screen that will require less memory than the default screen
using CHANGE SCREEN gadget after setting the screen parameters by using DEPTH,
HIRES, INTERLACE gadgets. Or you may wish to quit some other tasks running
on the background to release some memory to be able to open a drawing screen
)
* In the rectangular mode the program arranges grid elements ( except for the
WIREFRAME mode ) so that rendering the elements in that order removes the
hidden lines. But for the Polar mode one cannot make such a fast arrangement to
remove the hidden lines. Instead of employing hidden line algorithms , sorting
is performed. This may take some time if your grid resolution is over 60x60.
( acually what is long depends on your system as well as your patience )
* Polar mode evaluation is performed as follows:
For each pair of x,y values the values of the variables R, teta, beta are
calculated. Then these values are used to locate a point in the space. teta
value is used as the meridian value and beta value is used as the parallel
value on a sphere having radius R.
Parallel (beta) values range from -pi/2 to pi/2 ( south pole to north pole ).
Meridian (tata) values range from 0 to 2*pi ( from the first meridian to
the 360th meridian )
So if you keep R fixed (say 1)
trace beta -pi/2 to pi/2
trace teta 0 to 2*pi
You'll get a sphere having radius 1. ( just as the default values in the
gadgets R, teta, beta)
* In case of mathematical error(s) during evaluation, Emath-3D will assign
zero (0) value as the result of the expression that caused the error. The user
is going to be warned about the occurance of the error after the evaluation is
completed.
* This program is mainly developed using the MAXON KICK PASCAL V2.0
CONTACT ADDRESS & GREETINGS
---------------------------
My mail address : ( valid forever )
ULTRA A.S.
Erhan OZTOP
P.K. 567
ANTALYA - TURKEY
My email address: E63256@TRMETU.BITNET ( valid at least until oct.1993 )
* All programming and design by ERHAN OZTOP .
* Special thanks to
F. KAGAN GURKAYNAK for his ideas and general assistance.
ALP KORAY TASDEMIR for his comments and network assistance.
WARRANTY NOTICE
---------------
I will be in no way liable for damages, incidental, or consequential,
arising from the use or misuse of the program, EMath-3D or for any other
claim by any other party. No warranty ,explicit or implied, is given upon
the completeness of the program in the sense that it does what it is supposed
to do. Use the program at your own risk, no responsibilty is undertaken.